package cn.itcast.nems.journal.service;

import cn.itcast.nems.order.dao.entity.JournalDiscountLine;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;

import java.util.List;

public interface JournalDiscountLineService extends IService<JournalDiscountLine> {

    /**
     * 根据优惠单头ID获取行列表
     *
     * @param journalDiscountId 优惠单头ID
     * @return java.util.List<cn.itcast.nems.order.dao.entity.JournalDiscountLine>
     * @author 高昌露
     * @since 2023/12/9 16:31
     */
    List<JournalDiscountLine> queryByJournalDiscountId(@NonNull String journalDiscountId);

    /**
     * 根据凭单头ID批量生效凭单行
     *
     * @param journalDiscountId 优惠凭单ID
     * @author 高昌露
     * @since 2023/12/9 17:30
     */
    void batchValidByJournalDiscountId(@NonNull String journalDiscountId);

    /**
     * 核销
     *
     * @param id 优惠单行ID
     * @author 高昌露
     * @since 2023/12/10 14:23
     */
    void writeOff(@NonNull String id);

    /**
     * 根据学员ID或者客户ID(二者不可都为空)获取可用的优惠单
     *
     * @param studentId  学员ID
     * @param customerId 客户ID
     * @return java.util.List<cn.itcast.nems.order.dao.entity.JournalDiscountLine>
     * @author 高昌露
     * @since 2023/12/10 14:51
     */
    List<JournalDiscountLine> queryByStudentIdOrCustomerId(@Nullable Integer studentId, @Nullable String customerId);
}
